package com.copa.ums.modules.ums.service;

import com.copa.ums.modules.ums.model.UmsResource;
import com.copa.ums.modules.ums.model.UmsUser;

import java.util.List;

public interface UmsUserCacheService {

    /**
     * 获取缓存用户信息
     */
    UmsUser getUser(String username);

    /**
     * 设置缓存用户信息
     */
    void setUser(UmsUser user);

    /**
     * 获取指定用户的可访问资源
     */
    List<UmsResource> getResourceList(Long userId);

    /**
     * 设置用户资源列表
     */
    void setResourceList(Long userId, List<UmsResource> resourceList);

    /**
     * 删除用户缓存
     */
    void delUser(Long userId);

    /**
     * 删除用户资源列表缓存
     */
    void delResourceList(Long userId);

    /**
     * 当资源信息改变时，删除资源项目后台用户缓存
     */
    void delResourceListByResourceId(Long resourceId);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRoleIds(List<Long> roleIds);

    /**
     * 当角色相关资源信息改变时删除相关后台用户缓存
     */
    void delResourceListByRoleId(Long roleId);
}
